package com.itheima.fanxing;

import com.itheima.domain.Student;

/**
 * 自定义泛型接口
 */
public class Test06 {
    public static void main(String[] args) {
        //使用 实现类 实现 , 实现类也不明确泛型
        Generic<String> gg= new GericImpl1<>();
        gg.show("鹿晗");
        //实现类 明确泛型
        Generic<Student> gg2= new GericImpl2();
        gg2.show(new Student("关晓彤",25));
        //匿名内部类
        new Generic<Integer>() {
            @Override
            public void show(Integer integer) {
                System.out.println(integer+10000);
            }
        }.show(10);
        //lambda表达式
        Generic<Boolean>  gg3=(x)->{
            System.out.println(!x);
        };
        gg3.show(true);
    }
}

interface Generic<T> {

    void show(T t);

}
//实现类也不确定具体的类型
class GericImpl1<T> extends Object implements Generic<T>{


    @Override
    public void show(T t) {
        System.out.println(t);
    }
}
class GericImpl2 implements Generic<Student>{

    @Override
    public void show(Student student) {
        System.out.println(student.getName());
        System.out.println(student.getAge());
    }
}